package com.itheima.param;

/**
 * @Author 王加鑫
 * @Date 2021/4/22 16:03
 * @Version 1.0
 * java中引用类型也是值传递,但是是内存地址的传递,注意!!!
 */
public class ParamTest02 {
    public static void main(String[] args) {
        int[] arr = {10,20,30};
        System.out.println(arr[1]);
        change(arr);
        /*
        这里会输出200,为什么?
        原因:因为数组是引用类型,引用类型
        执行的是内存地址的传递,这里形参和实参两个
        同时执向一个内存地址,任意一个修改都会影响
        这个值的改变
         */
        System.out.println(arr[1]);

    }

    public static void change(int[] arr){
        /*
        如果形参重新开辟一个空间赋值呢?
        原因:形参和实参指向的不是同一片内存地址
        两片内存空间相互独立,互不影响
         */
        // arr[1] = 200;
        arr = new int[3];
        arr[1] = 200;

    }
}
